package store;

/**
 * @author jiang
 */
public class StoreStrategyShowTicket extends AbstractStoreStrategy {

    /**
     * 加价10~5阶段天数
     */
    private static final int LEVEL_TEN_TO_FIVE_SELL_IN = 10;

    /**
     * 加价5~0阶段天数
     */
    private static final int LEVEL_FIVE_TO_ZERO_SELL_IN = 5;

    /**
     * 演出票（Show Ticket）越接近演出日，价值反而上升。在演出前10天，价值每天上升2点；演出前5天，价值每天上升3点。但一旦过了演出日，价值就马上变成0。
     *
     * @param item
     */
    @Override
    public void updateValue(Item item) {
        addValue(item, COMMON_REDUCE_VALUE);
        if (item.sellIn < LEVEL_TEN_TO_FIVE_SELL_IN) {
            addValue(item, COMMON_REDUCE_VALUE);
        }
        if (item.sellIn < LEVEL_FIVE_TO_ZERO_SELL_IN) {
            addValue(item, COMMON_REDUCE_VALUE);
        }
        if (item.sellIn < MIN_SELL_IN) {
            item.value = MIN_VALUE;
        }
    }
}
